using System;
using System.Collections;
using System.Collections.Generic;
using M1;
using UnityEngine;

public class 对话场景 : MonoBehaviour
{
    [SerializeField] private 人 左说话着男;
    [SerializeField] private 人 左说话着女;
    [SerializeField] private 人 右说话着男;
    [SerializeField] private 人 右说话着女;
    [SerializeField] private GameObject 左边说话;
    [SerializeField] private GameObject 右边说话;
    [SerializeField] private float speed;

    public void 开始对白()
    {
        对白Ing = true;
        左边大小 = 1f;
        左边大小现在大小 = 1f;
        右边大小 = 1f;
        右边大小现在大小 = 1f;
        gameObject.SetActive(true);
    }

    public void 结束对白()
    {
        对白Ing = false;
        gameObject.SetActive(false);
    }

    private bool 对白Ing;

    private void Update()
    {
        if (对白Ing)
        {
            if(左边大小.CompareTo(左边大小现在大小)!=0)
            {
                左边大小现在大小 = Mathf.Lerp(左边大小现在大小, 左边大小, speed);
                左边说话.transform.localScale = Vector3.one*左边大小现在大小;
            }
            if(右边大小.CompareTo(右边大小现在大小)!=0)
            {
                右边大小现在大小 = Mathf.Lerp(右边大小现在大小, 右边大小, speed);
                右边说话.transform.localScale = Vector3.one*右边大小现在大小;
            }
        }
    }

    private 人 cur左;
    private 人 cur右;

    private float 左边大小;
    private float 左边大小现在大小;
    private float 右边大小现在大小;
    private float 右边大小;
    
    public void SetUp(string 哪边, (bool, bool) 说话者, 对话Setup所需 左, 对话Setup所需 右)
    {
        左边说话.SetActive(说话者.Item1);
        右边说话.SetActive(说话者.Item2);
        
        左说话着男.gameObject.SetActive(左.Sex==1);
        左说话着女.gameObject.SetActive(左.Sex==0);
        
        右说话着男.gameObject.SetActive(右.Sex==1);
        右说话着女.gameObject.SetActive(右.Sex==0);

        cur左 = 左.Sex == 0 ? 左说话着女 : 左说话着男;
        cur左.SetUp(左.头发,左.上衣,左.裤子, 左.装饰详情);
        
        
        cur右 = 右.Sex == 0 ? 右说话着男 : 右说话着女;
        cur右.SetUp(右.头发,右.上衣,右.裤子, 右.装饰详情);

        if (哪边 == "1")
        {
            左边大小 = 1.2f;
            右边大小 = 1f;
        }else if (哪边 == "2")
        {
            右边大小 = 1.2f;
            左边大小 = 1f;
        }
    }

    public void Set表情(string s,bool left)
    {
        if (left)
        {
            cur左.Play表情(s);
        }
        else
        {
            cur右.Play表情(s);
        }
    }
}

public class 对话Setup所需
{
    public int Sex;
    public Material 头发;
    public Material 上衣;
    public Material 裤子;
    public List<int> 装饰详情;
}
